#ifdef NO_PAGE	
#undef NO_PAGE
#else
	case 0x10:
		Opcode2 = OpRead(PC++);							//get the second byte of the opcode
		switch(Opcode2)
			{
			#include "Dead6809switchpage1.cpp"
			}
		break;
	case 0x11:
		Opcode2 = OpRead(PC++);							//get the second byte of the opcode
		switch(Opcode2)
			{
			#include "Dead6809switchpage2.cpp"
			}
		break;
#endif
	case 0x00:	DIRECT;		NEG;	break;			//neg, direct
	case 0x03:	DIRECT;		COM;	break;			//com, direct
	case 0x04:	DIRECT;		LSR;	break;			//lsr, direct
	case 0x06:	DIRECT;		ROR;	break;			//ror, direct
	case 0x07:	DIRECT;		ASR;	break;			//asr, direct
	case 0x08:	DIRECT;		LSL;	break;			//lsl, direct
	case 0x09:	DIRECT;		ROL;	break;			//rol, direct
	case 0x0A:	DIRECT;		DEC;	break;			//dec, direct
	case 0x0C:	DIRECT;		INC;	break;			//inc, direct
	case 0x0D:	DIRECT;		TST;	break;			//tst, direct
	case 0x0E:		JMP_DIRECT;		break;			//jmp, direct
	case 0x0F:	DIRECT;		CLR;	break;			//clr, direct
	case 0x12:							break;			//nop, implied
	case 0x16:	LBRANCH(1);			break;			//lbra, relative
	case 0x17:					LBSR;	break;			//lbsr, relative
	case 0x19:					DAA;	break;			//daa, implied
	case 0x1A:	IMMEDIATE8;	ORCC;	break;			//orcc, immediate
	case 0x1C:	IMMEDIATE8;	ANDCC;break;			//andcc, immediate
	case 0x1D:					SEX;	break;			//sex, implied
	case 0x1E:					EXG;	break;			//exg
	case 0x1F:					TFR;	break;			//tfr
	case 0x20:	BRANCH(1);										break;	//bra
	case 0x21:	PC++;												break;	//brn (nop)
	case 0x22:	BRANCH((CC & (F_ZERO | F_CARRY)) == 0);break;	//bhi
	case 0x23:	BRANCH(CC & (F_ZERO | F_CARRY));			break;	//bls
	case 0x24:	BRANCH((CC & F_CARRY) == 0);				break;	//bcc
	case 0x25:	BRANCH(CC & F_CARRY);						break;	//bcs
	case 0x26:	BRANCH((CC & F_ZERO) == 0);				break;	//bne
	case 0x27:	BRANCH(CC & F_ZERO);							break;	//beq
	case 0x28:	BRANCH((CC & F_OVERFLOW) == 0);			break;	//bvc
	case 0x29:	BRANCH(CC & F_OVERFLOW);					break;	//bvs
	case 0x2A:	BRANCH((CC & F_NEGATIVE) == 0);			break;	//bpl
	case 0x2B:	BRANCH(CC & F_NEGATIVE);					break;	//bmi
	case 0x2C:	BRANCH(((CC & F_NEGATIVE) ^ (CC & F_OVERFLOW) << 2) == 0);break;	//bge
	case 0x2D:	BRANCH((CC & F_NEGATIVE) ^ (CC & F_OVERFLOW) << 2);break;			//blt
	case 0x2E:	BRANCH(((CC & F_NEGATIVE) ^ (CC & F_OVERFLOW) << 2 || CC & F_ZERO) == 0);break;//bgt
	case 0x2F:	BRANCH((CC & F_NEGATIVE) ^ (CC & F_OVERFLOW) << 2 || CC & F_ZERO);break;//ble
	case 0x30:	INDEXED;		LEAX;		break;		//leax, indexed
	case 0x31:	INDEXED;		LEAY;		break;		//leay, indexed
	case 0x32:	INDEXED;		LEAS;		break;		//leas, indexed
	case 0x33:	INDEXED;		LEAU;		break;		//leau, indexed
	case 0x34:					PSHS;		break;		//pshs, immediate
	case 0x35:					PULS;		break;		//puls, immediate
	case 0x36:					PSHU;		break;		//pshu, immediate
	case 0x37:					PULU;		break;		//pulu, immediate
	case 0x39:					RTS;		break;		//rts, implied
	case 0x3A:					ABX;		break;		//abx, implied
	case 0x3B:					RTI;		break;		//rti, implied
	case 0x3C:	IMMEDIATE8;	CWAI;		break;		//cwai, immediate8
	case 0x3D:					MUL;		break;		//mul, implied
	case 0x3F:					SWI;		break;		//swi, implied
	case 0x40:					NEGA;		break;		//nega, implied
	case 0x43:					COMA;		break;		//coma, implied
	case 0x44:					LSRA;		break;		//lsra, implied
	case 0x46:					RORA;		break;		//rora, implied
	case 0x47:					ASRA;		break;		//asra, implied
	case 0x48:					LSLA;		break;		//lsla, implied
	case 0x49:					ROLA;		break;		//rola, implied
	case 0x4A:					DECA;		break;		//deca, implied
	case 0x4C:					INCA;		break;		//inca, implied
	case 0x4D:					TSTA;		break;		//tsta, implied
	case 0x4F:					CLRA;		break;		//clra, implied
	case 0x50:					NEGB;		break;		//negb, implied
	case 0x53:					COMB;		break;		//comb, implied
	case 0x54:					LSRB;		break;		//lsrb, implied
	case 0x56:					RORB;		break;		//rorb, implied
	case 0x57:					ASRB;		break;		//asrb, implied
	case 0x58:					LSLB;		break;		//lslb, implied
	case 0x59:					ROLB;		break;		//rolb, implied
	case 0x5A:					DECB;		break;		//decb, implied
	case 0x5C:					INCB;		break;		//incb, implied
	case 0x5D:					TSTB;		break;		//tstb, implied
	case 0x5F:					CLRB;		break;		//clrb, implied
	case 0x60:	INDEXED;		NEG;		break;		//neg, indexed
	case 0x63:	INDEXED;		COM;		break;		//com, indexed
	case 0x64:	INDEXED;		LSR;		break;		//lsr, indexed
	case 0x66:	INDEXED;		ROR;		break;		//ror, indexed
	case 0x67:	INDEXED;		ASR;		break;		//asr, indexed
	case 0x68:	INDEXED;		LSL;		break;		//lsl, indexed
	case 0x69:	INDEXED;		ROL;		break;		//rol, indexed
	case 0x6A:	INDEXED;		DEC;		break;		//dec, indexed
	case 0x6C:	INDEXED;		INC;		break;		//inc, indexed
	case 0x6D:	INDEXED;		TST;		break;		//tst, indexed
	case 0x6E:		JMP_INDEXED;		break;		//jmp, indexed
	case 0x6F:	INDEXED;		CLR;		break;		//clr, indexed
	case 0x70:	EXTENDED;	NEG;		break;		//neg, extended
	case 0x73:	EXTENDED;	COM;		break;		//com, extended
	case 0x74:	EXTENDED;	LSR;		break;		//lsr, extended
	case 0x76:	EXTENDED;	ROR;		break;		//ror, extended
	case 0x77:	EXTENDED;	ASR;		break;		//asr, extended
	case 0x78:	EXTENDED;	LSL;		break;		//lsl, extended
	case 0x79:	EXTENDED;	ROL;		break;		//rol, extended
	case 0x7A:	EXTENDED;	DEC;		break;		//dec, extended
	case 0x7C:	EXTENDED;	INC;		break;		//inc, extended
	case 0x7D:	EXTENDED;	TST;		break;		//tst, extended
	case 0x7E:		JMP_EXTENDED;		break;		//jmp, extended
	case 0x7F:	EXTENDED;	CLR;		break;		//clr, extended
	case 0x80:	IMMEDIATE8;	SUBA;		break;		//suba, immediate8
	case 0x81:	IMMEDIATE8;	CMPA;		break;		//cmpa, immediate8
	case 0x82:	IMMEDIATE8;	SBCA;		break;		//sbca, immediate8
	case 0x83:	IMMEDIATE;	SUBD;		break;		//subd, immediate
	case 0x84:	IMMEDIATE8;	ANDA;		break;		//anda, immediate8
	case 0x85:	IMMEDIATE8;	BITA;		break;		//bita, immediate8
	case 0x86:	IMMEDIATE8;	LDA;		break;		//lda, immediate8
	case 0x88:	IMMEDIATE8;	EORA;		break;		//eora, immediate8
	case 0x89:	IMMEDIATE8;	ADCA;		break;		//adca, immediate8
	case 0x8A:	IMMEDIATE8;	ORA;		break;		//ora, immediate8
	case 0x8B:	IMMEDIATE8;	ADDA;		break;		//adda, immediate8
	case 0x8C:	IMMEDIATE;	CMPX;		break;		//cmpx, immediate
	case 0x8D:					BSR;		break;		//bsr, relative
	case 0x8E:	IMMEDIATE;	LDX;		break;		//ldx, immediate
	case 0x90:	DIRECT;		SUBA;		break;		//suba, direct
	case 0x91:	DIRECT;		CMPA;		break;		//cmpa, direct
	case 0x92:	DIRECT;		SBCA;		break;		//sbca, direct
	case 0x93:	DIRECT;		SUBD;		break;		//subd, direct
	case 0x94:	DIRECT;		ANDA;		break;		//anda, direct
	case 0x95:	DIRECT;		BITA;		break;		//bita, direct
	case 0x96:	DIRECT;		LDA;		break;		//lda, direct
	case 0x97:	DIRECT;		STA;		break;		//sta, direct
	case 0x98:	DIRECT;		EORA;		break;		//eora, direct
	case 0x99:	DIRECT;		ADCA;		break;		//adca, direct
	case 0x9A:	DIRECT;		ORA;		break;		//ora, direct
	case 0x9B:	DIRECT;		ADDA;		break;		//adda, direct
	case 0x9C:	DIRECT;		CMPX;		break;		//cmpx, direct
	case 0x9D:		JSR_DIRECT;			break;		//jsr, direct
	case 0x9E:	DIRECT;		LDX;		break;		//ldx, direct
	case 0x9F:	DIRECT;		STX;		break;		//stx, direct
	case 0xA0:	INDEXED;		SUBA;		break;		//suba, indexed
	case 0xA1:	INDEXED;		CMPA;		break;		//cmpa, indexed
	case 0xA2:	INDEXED;		SBCA;		break;		//sbca, indexed
	case 0xA3:	INDEXED;		SUBD;		break;		//subd, indexed
	case 0xA4:	INDEXED;		ANDA;		break;		//anda, indexed
	case 0xA5:	INDEXED;		BITA;		break;		//bita, indexed
	case 0xA6:	INDEXED;		LDA;		break;		//lda, indexed
	case 0xA7:	INDEXED;		STA;		break;		//sta, indexed
	case 0xA8:	INDEXED;		EORA;		break;		//eora, indexed
	case 0xA9:	INDEXED;		ADCA;		break;		//adca, indexed
	case 0xAA:	INDEXED;		ORA;		break;		//ora, indexed
	case 0xAB:	INDEXED;		ADDA;		break;		//adda, indexed
	case 0xAC:	INDEXED;		CMPX;		break;		//cmpx, indexed
	case 0xAD:		JSR_INDEXED;		break;		//jsr, indexed
	case 0xAE:	INDEXED;		LDX;		break;		//ldx, indexed
	case 0xAF:	INDEXED;		STX;		break;		//stx, indexed
	case 0xB0:	EXTENDED;	SUBA;		break;		//suba, extended
	case 0xB1:	EXTENDED;	CMPA;		break;		//cmpa, extended
	case 0xB2:	EXTENDED;	SBCA;		break;		//sbca, extended
	case 0xB3:	EXTENDED;	SUBD;		break;		//subd, extended
	case 0xB4:	EXTENDED;	ANDA;		break;		//anda, extended
	case 0xB5:	EXTENDED;	BITA;		break;		//bita, extended
	case 0xB6:	EXTENDED;	LDA;		break;		//lda, extended
	case 0xB7:	EXTENDED;	STA;		break;		//sta, extended
	case 0xB8:	EXTENDED;	EORA;		break;		//eora, extended
	case 0xB9:	EXTENDED;	ADCA;		break;		//adca, extended
	case 0xBA:	EXTENDED;	ORA;		break;		//ora, extended
	case 0xBB:	EXTENDED;	ADDA;		break;		//adda, extended
	case 0xBC:	EXTENDED;	CMPX;		break;		//cmpx, extended
	case 0xBD:		JSR_EXTENDED;		break;		//jsr, extended
	case 0xBE:	EXTENDED;	LDX;		break;		//ldx, extended
	case 0xBF:	EXTENDED;	STX;		break;		//stx, extended
	case 0xC0:	IMMEDIATE8;	SUBB;		break;		//subb, immediate8
	case 0xC1:	IMMEDIATE8;	CMPB;		break;		//cmpb, immediate8
	case 0xC2:	IMMEDIATE8;	SBCB;		break;		//sbcb, immediate8
	case 0xC3:	IMMEDIATE;	ADDD;		break;		//addd, immediate
	case 0xC4:	IMMEDIATE8;	ANDB;		break;		//andb, immediate8
	case 0xC5:	IMMEDIATE8;	BITB;		break;		//bitb, immediate8
	case 0xC6:	IMMEDIATE8;	LDB;		break;		//ldb, immediate8
	case 0xC8:	IMMEDIATE8;	EORB;		break;		//eorb, immediate8
	case 0xC9:	IMMEDIATE8;	ADCB;		break;		//adcb, immediate8
	case 0xCA:	IMMEDIATE8;	ORB;		break;		//orb, immediate8
	case 0xCB:	IMMEDIATE8;	ADDB;		break;		//addb, immediate8
	case 0xCC:	IMMEDIATE;	LDD;		break;		//ldd, immediate
	case 0xCE:	IMMEDIATE;	LDU;		break;		//ldu, immediate
	case 0xD0:	DIRECT;		SUBB;		break;		//subb, direct
	case 0xD1:	DIRECT;		CMPB;		break;		//cmpb, direct
	case 0xD2:	DIRECT;		SBCB;		break;		//sbcb, direct
	case 0xD3:	DIRECT;		ADDD;		break;		//addd, direct
	case 0xD4:	DIRECT;		ANDB;		break;		//andb, direct
	case 0xD5:	DIRECT;		BITB;		break;		//bitb, direct
	case 0xD6:	DIRECT;		LDB;		break;		//ldb, direct
	case 0xD7:	DIRECT;		STB;		break;		//stb, direct
	case 0xD8:	DIRECT;		EORB;		break;		//eorb, direct
	case 0xD9:	DIRECT;		ADCB;		break;		//adcb, direct
	case 0xDA:	DIRECT;		ORB;		break;		//orb, direct
	case 0xDB:	DIRECT;		ADDB;		break;		//addb, direct
	case 0xDC:	DIRECT;		LDD;		break;		//ldd, direct
	case 0xDD:	DIRECT;		STD;		break;		//std, direct
	case 0xDE:	DIRECT;		LDU;		break;		//ldu, direct
	case 0xDF:	DIRECT;		STU;		break;		//stu, direct
	case 0xE0:	INDEXED;		SUBB;		break;		//subb, indexed
	case 0xE1:	INDEXED;		CMPB;		break;		//cmpb, indexed
	case 0xE2:	INDEXED;		SBCB;		break;		//sbcb, indexed
	case 0xE3:	INDEXED;		ADDD;		break;		//addd, indexed
	case 0xE4:	INDEXED;		ANDB;		break;		//andb, indexed
	case 0xE5:	INDEXED;		BITB;		break;		//bitb, indexed
	case 0xE6:	INDEXED;		LDB;		break;		//ldb, indexed
	case 0xE7:	INDEXED;		STB;		break;		//stb, indexed
	case 0xE8:	INDEXED;		EORB;		break;		//eorb, indexed
	case 0xE9:	INDEXED;		ADCB;		break;		//adcb, indexed
	case 0xEA:	INDEXED;		ORB;		break;		//orb, indexed
	case 0xEB:	INDEXED;		ADDB;		break;		//addb, indexed
	case 0xEC:	INDEXED;		LDD;		break;		//ldd, indexed
	case 0xED:	INDEXED;		STD;		break;		//std, indexed
	case 0xEE:	INDEXED;		LDU;		break;		//ldu, indexed
	case 0xEF:	INDEXED;		STU;		break;		//stu, indexed
	case 0xF0:	EXTENDED;	SUBB;		break;		//subb, extended
	case 0xF1:	EXTENDED;	CMPB;		break;		//cmpb, extended
	case 0xF2:	EXTENDED;	SBCB;		break;		//sbcb, extended
	case 0xF3:	EXTENDED;	ADDD;		break;		//addd, extended
	case 0xF4:	EXTENDED;	ANDB;		break;		//andb, extended
	case 0xF5:	EXTENDED;	BITB;		break;		//bitb, extended
	case 0xF6:	EXTENDED;	LDB;		break;		//ldb, extended
	case 0xF7:	EXTENDED;	STB;		break;		//stb, extended
	case 0xF8:	EXTENDED;	EORB;		break;		//eorb, extended
	case 0xF9:	EXTENDED;	ADCB;		break;		//adcb, extended
	case 0xFA:	EXTENDED;	ORB;		break;		//orb, extended
	case 0xFB:	EXTENDED;	ADDB;		break;		//addb, extended
	case 0xFC:	EXTENDED;	LDD;		break;		//ldd, extended
	case 0xFD:	EXTENDED;	STD;		break;		//std, extended
	case 0xFE:	EXTENDED;	LDU;		break;		//ldu, extended
	case 0xFF:	EXTENDED;	STU;		break;		//stu, extended
	default:
		message("bad 6809 opcode $%02X at $%04X\n",Opcode,PC-1);
		return;
